import { ComponentValidation, Condition } from 'src/app/models';

export interface EngineComponent {
  id: string;
  type: string;
  labelText: string;
  labelStyles: any;
  bindField: string;
  selector: string;
  defaultValue: any;
  valueFilter: any;
  fieldStyles: any;
  dataSource: any;
  name?: string;
  size: 'large' | 'middle' | 'small';
  validations?: ComponentValidation[];
  /**
   * 每次组件被渲染的时候分配的uuid
   */
  identifyId?: string;
  /**
   * 是否不可修改
   */
  readonly?: boolean;
  /**
   * 是否只读模式，
   * 因为是后加的属性，
   * readonly已经被用于表示是否可以修改，
   * 所以使用disabled
   */
  disabled?: boolean;
  extends?: any;
  condition?: Condition;
  tmpComItemId?: string;
  /**
   * 是否不满足显示条件
   */
  invalid?: boolean;
  /**
   * 组件所在的模板是否满足显示条件
   */
  tplInvalid?: boolean;
}
